<?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://hyperf.wiki
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
 */
namespace App\Service\Formatter;

use App\Model\User;
use HyperfX\Utils\Service;

class UserFormatter extends Service
{
    public function base(User $model): array
    {
        return [
            'id' => $model->id,
            'nickname' => $model->nickname,
            'type' => $model->type,
            'avatar' => $model->avatar,
            'gender' => $model->gender,
            'birthday' => $model->birthday,
            'education' => $model->education,
            'intro' => $model->intro,
            'registered' => $model->registered(),
        ];
    }

    public function info(User $model): array
    {
        $result = $this->base($model);
        $result['mobile'] = $model->getMobile();
        return $result;
    }

    public function small(User $model)
    {
        return [
            'id' => $model->id,
            'nickname' => $model->nickname,
            'avatar' => $model->avatar,
        ];
    }
}
